﻿/*
半数生存 
Time Limit:1000MS  Memory Limit:32768K


Description:
在也有像我们人类生存的一个星球上，由于气候的关系，每过一年，人们就要从东方向西方迁徙，
然后再过一年，就又要从西方回到东方，年复一年。迁涉就必须要渡海，渡海就必须要过一个鬼门关。
鬼门关不管船的贵贱，一律放行船中人数的一半，另一半则必须跳海侍鬼。
若逢单，则落单的人也不能幸免。
每条船上有一个巫师，他负责监管一种筛选规则，让人们围成一圈，每数到一个“天数”，则数到的这个人就得跳海，
然后继续绕着圈子数一个天数，让下一个人跳海，直到鬼门关所要的半数。
因此，每逢迁涉，总有大批的人要贿赂巫师，希望幸免过关，而穷人则听天由命。
巫师确实掌握着每个人的命运，但他有自己的办事原则，
他暗中替天行道，每到过鬼门关的时候，就乘机将那些罪大恶极的，
不配继续做人者给“挂”掉。他所收受的贿赂，用来平衡那些生存下来的人生活。
巫师是怎么替天行道的呢？原来，他是将一些好人安排在某些位子上，使得他们“天数不到，命不该跳”。
那么那些位子究竟是怎么分布的呢？请你用现代化的编程技术来揭示这一秘密吧。 

Input:
每个整数对P和K，P表示船上的人数(<50)，K表示“天数”(1<K<50)。 
Output:
对于每组整数，按从小到大的顺序输出巫师按排的“命不该跳”的位置，中间以一个空格隔开。 
Sample Input:
10 3
20 7
5 2
Sample Output:
1 4 5 8 10
2 3 6 10 11 12 13 18 19 20
3 5
*/
#include <stdio.h>
#include <stdlib.h>
int main()
{
	int p, k;
	scanf("%d%d", &p, &k);
	int joseph=0;
	for (int i=2; i<=p;++i)
	{
		joseph=(joseph+k)%i;
		printf("%d ", joseph);
	}
	return EXIT_SUCCESS;
}